package com.kingyun.gpsinspection.purificationservice.facade.service.jsm.entitytype;

import com.alibaba.fastjson.JSONObject;
import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.Employee;
import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.EntityTypeProperty;

import java.util.List;
import java.util.Map;

/**
 * @Author 卢曼成
 * @Description 实体类特性值Service
 * @Create 2017-02-23 15:26
 */
public interface JsmEntityTypePropertyService {
	/**
	 * @param devicePropertyId,实体特性值唯一标识
	 * @return
	 */
	int deleteByPrimaryKey(String devicePropertyId);

	/**
	 * @param propertyIds 批量删除
	 * @return
	 */
	int deleteByDevicePropertyIds(Map propertyIds);

	/**
	 * @param record 生产生产实体类型特性值-插入
	 * @return
	 */
	int insert(EntityTypeProperty record);

	/**
	 * @param record 生产生产实体类型特性值-插入
	 * @return
	 */
	int insertSelective(EntityTypeProperty record);

	/**
	 * @param devicePropertyId 根据生产实体ID
	 * @return
	 */
	EntityTypeProperty selectByPrimaryKey(String devicePropertyId);

	/**
	 * @param record 根据生产实体特性值-修改
	 * @return
	 */
	int updateByPrimaryKeySelective(EntityTypeProperty record);

	/**
	 * @param record 根据生产实体特性值-修改
	 * @return
	 */
	int updateByPrimaryKey(EntityTypeProperty record);


	/**
	 * @param entityTypeProperty 查询分页数量
	 * 查询当前生产实体类型
	 */
	List<EntityTypeProperty> queryTableList(EntityTypeProperty entityTypeProperty);

	/**
	 * @param entityTypeId
	 * @return 根据生产生产实体类型ID查询特性值
	 */
	List<EntityTypeProperty> outQueryList(String entityTypeId);

	/**
	 * @Author 卢曼成
	 * @Description 批量插入
	 * @Date 2017/2/21 16:48
	 */
	int insertList(List<EntityTypeProperty> list);

	/**
	 * @Author 卢曼成
	 * @Description 批量逻辑删除
	 * @Date 2017/2/21 17:10
	 */
	int deleteList(List<EntityTypeProperty> list);

	/**
	 * @Author 卢曼成
	 * @Description 根据EntityId查询所有信息
	 * @Date 2017/2/21 17:03
	 */
	List<EntityTypeProperty> selectByParentKey(EntityTypeProperty param);

	/**
	 * @Author 卢曼成
	 * @Description 根据父级ID删除
	 * @Date 2017/2/22 11:00
	 */
	int deleteParentKey(EntityTypeProperty param);

	/**
	 * @Author 卢曼成
	 * @Description 批量处理实体特性值
	 * @Date 2017/2/23 15:36
	 */
//	int batchEntityTypeProperty(String etp, String entityTypeId, String userId, Date date,int isNum);


	/**
	 * @Author huangxueqian
	 * @Description 单个新增特性值
	 * @Date 2017/2/23 15:36
	 * @param etp 实体特性值json
	 * @param entityTypeId 生产实体类型
	 */
	int batchEntityTypeProperty(String etp, String entityTypeId, Employee employee) throws Exception;


	/**
	 * @param entityTypeProperty 实体特性值
	 *                           返回json
	 */
	JSONObject table(EntityTypeProperty entityTypeProperty) throws Exception;

	/**
	 * 生产实体类型-新增插入
	 *
	 * @param entityTypeProperty 特性值信息
	 */
	public int addEntityTypeProperty(EntityTypeProperty entityTypeProperty, Employee employee) throws Exception;

	/**
	 * 生产实体类型-新增插入
	 *
	 * @param propertyIds 删除集合
	 */
	public Integer delEntityTypeProperty(Map propertyIds) throws Exception;
}
